﻿namespace CSharpPro1._1016;
using System;
class BubbleSortDemo
{
    static void Main(string[] args)
    {
        int[] arr = { 5, 3, 8, 6, 7, 2 };
        Console.WriteLine("排序前：" + string.Join(", ", arr));

        // 调用冒泡排序（升序）
        BubbleSortAsc(arr);
        Console.WriteLine("升序排序后：" + string.Join(", ", arr));

        // 重新初始化数组，演示降序
        arr = new int[] { 5, 3, 8, 6, 7, 2 };
        BubbleSortDesc(arr);
        Console.WriteLine("降序排序后：" + string.Join(", ", arr));
    }

    // 冒泡排序（升序）：相邻元素比较，大的后移
    static void BubbleSortAsc(int[] array)
    {
        int n = array.Length;
        for (int i = 0; i < n - 1; i++)
        {
            for (int j = 0; j < n - i - 1; j++)
            {
                if (array[j] > array[j + 1])
                {
                    // 交换元素
                    int temp = array[j];
                    array[j] = array[j + 1];
                    array[j + 1] = temp;
                }
            }
        }
    }

    // 冒泡排序（降序）：相邻元素比较，小的后移
    static void BubbleSortDesc(int[] array)
    {
        int n = array.Length;
        for (int i = 0; i < n - 1; i++)
        {
            for (int j = 0; j < n - i - 1; j++)
            {
                if (array[j] < array[j + 1])
                {
                    // 交换元素
                    int temp = array[j];
                    array[j] = array[j + 1];
                    array[j + 1] = temp;
                }
            }
        }
    }
}